package tr.edu.ege.seagent.hobnobandroidapplication;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class Place {
	public Place() {
		this.placeURIs = new ArrayList<String>();
		this.coordinateMap = new HashMap<String, String>();
		this.notifications = new ArrayList<String>();
	}

	/**
	 * URI list of notifications.
	 */
	private ArrayList<String> notifications;

	/**
	 * URI of place.
	 */
	private String placeURI;

	/**
	 * URI list of places;
	 */
	private ArrayList<String> placeURIs;

	/**
	 * y-Coordinate of given location.
	 */
	private String longitude;

	/**
	 * x-Coordinate of given location.
	 */
	private String latitude;

	/**
	 * Map for coordinates. <b>@info Map<latitude, longitude>
	 */
	private Map<String, String> coordinateMap;

	/**
	 * Get method of latitude.
	 * 
	 * @return {@link Place#latitude}
	 */
	public String getLatitude() {
		return latitude;
	}

	/**
	 * Get method of longitude.
	 * 
	 * @return {@link Place#longitude}
	 */
	public String getLongitute() {
		return longitude;
	}

	/**
	 * Get method of placeURI.
	 * 
	 * @return {@link Place#placeURI}
	 */
	public String getPlaceURI() {
		return placeURI;
	}

	/**
	 * Get method of placeURI list.
	 * 
	 * @return {@link Place#placeURIs}
	 */
	public ArrayList<String> getPlaceURIs() {
		return placeURIs;
	}

	/**
	 * Set method of latitude.
	 * 
	 * @param latitude
	 *            is a finded x-Coordinate of given query.
	 * 
	 */
	public void setLatitude(String latitude) {
		this.latitude = latitude;
	}

	/**
	 * Set method of longitude.
	 * 
	 * @param longitude
	 *            is a finded y-Coordinate of given query.
	 */
	public void setLongitude(String longitude) {
		this.longitude = longitude;
	}

	/**
	 * Set method of placeURI.
	 * 
	 * @param placeURI
	 *            URI of place.
	 */
	public void setPlaceURI(String placeURI) {
		this.placeURI = placeURI;
	}

	/**
	 * Set method of placeURI list.
	 * 
	 * @param placeURIs
	 *            URIs of places.
	 */
	public void setPlaceURIs(ArrayList<String> placeURIs) {
		this.placeURIs = placeURIs;
	}

	/**
	 * Adds URI of places to the {@link Place#placeURIs} list.
	 * 
	 * @param placeURI
	 *            URI of place.
	 */
	public void addPlaceURI(String placeURI) {
		this.placeURIs.add(placeURI);
	}

	/**
	 * Get method of mappings.
	 * 
	 * @return {@link Place#coordinateMap}
	 */
	public Map<String, String> getCoordinateMap() {
		return coordinateMap;
	}

	/**
	 * Set method of mappings.
	 * 
	 * @param coordinateMap
	 *            is Map for {@link Place#latitude} and {@link Place#longitude}
	 */
	public void setCoordinateMap(Map<String, String> coordinateMap) {
		this.coordinateMap = coordinateMap;
	}

	/**
	 * Adds coordinates to the map.
	 * 
	 * @param latitude
	 *            x-Coordinate of place
	 * @param longitude
	 *            y-Coordinate of place
	 */
	public void putCoordinates(String latitude, String longitude) {
		this.coordinateMap.put(latitude, longitude);
	}

	/**
	 * Get method for notification URI list.
	 * 
	 * @return {@link Place#notifications}
	 */
	public ArrayList<String> getNotifications() {
		return notifications;
	}

	/**
	 * Set method for notification URI list.
	 * 
	 * @param notifications
	 *            list of notification URIs.
	 */
	public void setNotifications(ArrayList<String> notifications) {
		this.notifications = notifications;
	}
}
